class Solution {
public:
    int findMinFibonacciNumbers(int k) {
        long long a = 1,b = 1;
        while(b < k){
            long long c = a + b;
            a = b;
            b = c;
        }
        
        int ans = 0;
        while(k){
            if(k >= b){
                k -= b;
                ans++;
            }
            long long c = b - a;
            b = a;
            a = c;
        }
        
        return ans;
    }
};

